PredicateUtils এর উন্নত ব্যবহার

Java Technologies - অ্যাপাচি কমন্স কালেকশনস (Apache Common Collection) Functors এবং Predicates এর উন্নত ব্যবহার |
124
124

Apache Commons Collections লাইব্রেরির PredicateUtils ক্লাসটি বিভিন্ন Predicate অপারেশন তৈরি করার জন্য সহায়ক ইউটিলিটি মেথড সরবরাহ করে। Predicate একটি ফাংশনাল প্রোগ্রামিং কৌশল যা একটি ইনপুট গ্রহণ করে এবং একটি বুলিয়ান মান (true/false) রিটার্ন করে, যা শর্ত নির্ধারণ করে। PredicateUtils ক্লাসটি এই predicates তৈরি ও কম্বাইন করার কাজকে সহজ করে তোলে, এবং collection-এর উপাদানগুলিতে শর্ত প্রয়োগ করার জন্য একটি শক্তিশালী টুল সরবরাহ করে।

এই পোস্টে আমরা PredicateUtils এর বিভিন্ন উন্নত ব্যবহার কৌশল নিয়ে আলোচনা করব এবং দেখব কীভাবে আপনি একাধিক predicates কম্বাইন বা ফিল্টার করতে পারেন।


PredicateUtils এর বৈশিষ্ট্য এবং কার্যকারিতা

PredicateUtils ক্লাসে কিছু খুবই শক্তিশালী মেথড রয়েছে যা আপনাকে predicate তৈরি, একাধিক predicate একসাথে কম্বাইন এবং অন্যান্য ফাংশনাল শর্ত প্রয়োগে সহায়তা করে। এর কিছু প্রধান বৈশিষ্ট্য:

  1. allPredicate(): একটি নতুন predicate তৈরি করে যা সমস্ত উপাদানের জন্য সত্য হয়।
  2. anyPredicate(): একটি নতুন predicate তৈরি করে যা যে কোন উপাদানের জন্য সত্য হতে পারে।
  3. not(): একটি predicate এর বিপরীত শর্ত তৈরি করে।
  4. and(): দুটি বা ততোধিক predicate কে একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে।
  5. or(): দুটি বা ততোধিক predicate কে একত্রে যুক্ত করে একটি যে কোন শর্তের ভিত্তিতে সত্য হয় এমন শর্ত তৈরি করে।

PredicateUtils এর প্রধান মেথড

  1. allPredicate(): সমস্ত উপাদানের জন্য সত্য হবে এমন একটি predicate তৈরি করা।
    • উদাহরণস্বরূপ, আপনি একটি predicate তৈরি করতে পারেন যা সকল উপাদানের জন্য সত্য হবে।
  2. anyPredicate(): কোনো একটি উপাদান সত্য হলে, শর্ত পাস করবে এমন একটি predicate তৈরি করা।
    • উদাহরণস্বরূপ, আপনি এমন একটি predicate তৈরি করতে পারেন যা একটি শর্তে true রিটার্ন করবে যদি যেকোনো একটি উপাদান সত্য হয়।
  3. not(): একটি predicate এর বিপরীত শর্ত তৈরি করা।
    • উদাহরণস্বরূপ, আপনি একটি predicate তৈরি করতে পারেন যা একটি শর্তে false রিটার্ন করবে যদি প্রাথমিক শর্তটি true হয়।
  4. and(): দুটি বা ততোধিক predicate এর যৌথ শর্ত তৈরি করা।
    • উদাহরণস্বরূপ, দুটি predicate এর শর্ত যদি and কম্বাইন করা হয়, তবে দুটি শর্তই সত্য হতে হবে।
  5. or(): দুটি বা ততোধিক predicate এর যৌথ শর্ত তৈরি করা, যেখানে যে কোনো একটি শর্ত সত্য হলে, পুরো predicate সত্য হবে।

উন্নত উদাহরণ: PredicateUtils এর ব্যবহার

1. allPredicate() উদাহরণ:

allPredicate() মেথডটি একটি predicate তৈরি করে যা নিশ্চিত করে যে সমস্ত উপাদান সেই শর্তে পাস করবে।

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;

import java.util.Arrays;
import java.util.List;

public class PredicateUtilsExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(2, 4, 6, 8, 10);

        // Create a predicate that checks if all numbers are even
        Predicate<Integer> allEven = PredicateUtils.allPredicate(new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number % 2 == 0;  // Check if number is even
            }
        });

        // Check if all numbers are even
        boolean result = true;
        for (Integer number : numbers) {
            if (!allEven.evaluate(number)) {
                result = false;
                break;
            }
        }

        System.out.println("All numbers are even: " + result); // Output: true
    }
}

ব্যাখ্যা:

  • এখানে, PredicateUtils.allPredicate() একটি predicate তৈরি করছে যা নিশ্চিত করে যে প্রতিটি উপাদান even (যুগল) হতে হবে।
  • allEven.evaluate() মেথডটি প্রতিটি উপাদান যাচাই করে এবং যদি কোনো এক উপাদান শর্ত পূরণ না করে তবে এটি false রিটার্ন করবে।

2. anyPredicate() উদাহরণ:

anyPredicate() মেথডটি একটি predicate তৈরি করে যা কোনো একটি উপাদান শর্ত পূর্ণ করলে তা সত্য হবে।

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;

import java.util.Arrays;
import java.util.List;

public class PredicateUtilsExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 3, 5, 7, 10);

        // Create a predicate that checks if any number is greater than 5
        Predicate<Integer> anyGreaterThanFive = PredicateUtils.anyPredicate(new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number > 5;  // Check if number is greater than 5
            }
        });

        // Check if any number is greater than 5
        boolean result = false;
        for (Integer number : numbers) {
            if (anyGreaterThanFive.evaluate(number)) {
                result = true;
                break;
            }
        }

        System.out.println("Any number is greater than 5: " + result); // Output: true
    }
}

ব্যাখ্যা:

  • anyPredicate() একটি predicate তৈরি করছে যা নিশ্চিত করে যে কোনো একটি উপাদান যদি ৫ এর বেশি হয় তবে এটি সত্য রিটার্ন করবে।
  • এখানে anyGreaterThanFive.evaluate() মেথডটি উপাদান যাচাই করে এবং যদি কোনো একটি উপাদান শর্ত পূর্ণ করে, তাহলে এটি সত্য রিটার্ন করবে।

3. and() উদাহরণ:

and() মেথডটি দুটি predicate একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে। দুটি শর্তই পূর্ণ হতে হবে।

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;

import java.util.Arrays;
import java.util.List;

public class PredicateUtilsExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(2, 4, 6, 7, 10);

        // Create two predicates: check if number is even and greater than 5
        Predicate<Integer> isEven = new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number % 2 == 0;  // Check if number is even
            }
        };

        Predicate<Integer> greaterThanFive = new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number > 5;  // Check if number is greater than 5
            }
        };

        // Combine the predicates using and()
        Predicate<Integer> isEvenAndGreaterThanFive = PredicateUtils.and(isEven, greaterThanFive);

        // Check if any number satisfies both conditions
        for (Integer number : numbers) {
            if (isEvenAndGreaterThanFive.evaluate(number)) {
                System.out.println(number + " satisfies both conditions");
            }
        }
    }
}

Output:

6 satisfies both conditions
10 satisfies both conditions

ব্যাখ্যা:

  • এখানে and() মেথডটি দুটি predicate (একটি even চেক এবং অন্যটি greater than 5 চেক) একত্রে ব্যবহার করছে।
  • শুধুমাত্র 6 এবং 10 শর্ত পূর্ণ করেছে, কারণ তাদের উভয় শর্তই পূর্ণ হয়েছে।

4. or() উদাহরণ:

or() মেথডটি দুটি predicate একত্রে যুক্ত করে একটি যৌথ শর্ত তৈরি করে, যেখানে যেকোনো একটি শর্ত পূর্ণ হলেই তা সত্য হবে।

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.PredicateUtils;

import java.util.Arrays;
import java.util.List;

public class PredicateUtilsExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 3, 5, 7, 10);

        // Create two predicates: check if number is even or greater than 5
        Predicate<Integer> isEven = new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number % 2 == 0;  // Check if number is even
            }
        };

        Predicate<Integer> greaterThanFive = new Predicate<Integer>() {
            @Override
            public boolean evaluate(Integer number) {
                return number > 5;  // Check if number is greater than 5
            }
        };

        // Combine the predicates using or()
        Predicate<Integer> isEvenOrGreaterThanFive = PredicateUtils.or(isEven, greaterThanFive);

        // Check if any number satisfies at least one condition
        for (Integer number : numbers) {
            if (isEvenOrGreaterThanFive.evaluate(number)) {
                System.out.println(number + " satisfies at least one condition");
            }
        }
    }
}

Output:

1 satisfies at least one condition
3 satisfies at least one condition
5 satisfies at least one condition
7 satisfies at least one condition
10 satisfies at least one condition

ব্যাখ্যা:

  • এখানে or() মেথডটি দুটি predicate (একটি even চেক এবং অন্যটি greater than 5 চেক) একত্রে ব্যবহার করছে।
  • সমস্ত উপাদানগুলির মধ্যে কমপক্ষে একটি শর্ত পূর্ণ হয়েছে, তাই or() শর্ত পূর্ণ করেছে।

PredicateUtils Apache Commons Collections লাইব্রেরির একটি শক্তিশালী ক্লাস যা বিভিন্ন predicate অপারেশন এবং তাদের কম্বিনেশন তৈরি করতে সহায়তা করে। PredicateUtils এর মেথড যেমন allPredicate(), anyPredicate(), and(), এবং or() আপনাকে একাধিক শর্তের ভিত্তিতে কালেকশনের উপাদানগুলো ফিল্টার করতে সহায়তা করে। এটি আপনাকে ফাংশনাল শর্তগুলির প্রয়োগ ও ম্যানিপুলেশন সহজ এবং কার্যকরীভাবে করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion